package com.mq.redis.queue.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mq.redis.queue.RedisQueueListener;
import com.mq.redis.queue.bean.RedisQueue;

/**
 * 任务处理监听类
 * @author wenfei
 *
 * @param <T>
 * @param <V>
 */
@Service
public class QueueListener<T, V> implements RedisQueueListener<String> {
	
	boolean ifsuccess = true;
	
	
	@Autowired
	RedisQueue<T, V> redisQueue;
	
	@Override
	public void onMessage(String key,String value) {
		System.out.println("---------->>> 当前收到队列消息：" + value);
		
		
		if("test:appA".equals(value) || "test:appB".equals(value)){  // 测试异常情况ack机制
			ifsuccess = false;
		}
		
		if(ifsuccess){
			redisQueue.removeFromHash(key);
			System.out.println("---------->>> 消息key：" + key + "处理成功");
		}else{
			System.err.println("---------->>> 消息key：" + key + "处理失败");
		}
	}
}
